package co.inventario.modelo.negocio;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import co.inventario.datos.sqlserver.OrdenCompraDAOSQLServer;
import co.inventario.entidad.OrdenCompraDTO;

public class OrdenCompraNegocio {

	public void crear(OrdenCompraDTO ordenCompraDTO, Connection connection) throws Exception, SQLException {
		OrdenCompraDAOSQLServer ordenCompraDAOSQLServer = new OrdenCompraDAOSQLServer();
		OrdenCompraDTO ordenCompraDTOConsultado = ordenCompraDAOSQLServer.consultarPorConsecutivo(ordenCompraDTO, connection);
		if (ordenCompraDTOConsultado == null) {
			ordenCompraDAOSQLServer.crear(ordenCompraDTO, connection);
		} else {
			throw new Exception("La orden de compra que intenta crear, ya existe.");
		}
	}

	public void actualizar(OrdenCompraDTO ordenCompraDTO, Connection connection) throws Exception, SQLException {
		OrdenCompraDAOSQLServer ordenCompraDAOSQLServer = new OrdenCompraDAOSQLServer();
		OrdenCompraDTO ordenCompraDTOConsultado = ordenCompraDAOSQLServer.consultarPorConsecutivo(ordenCompraDTO, connection);
		if (ordenCompraDTOConsultado != null) {
			ordenCompraDAOSQLServer.actualizar(ordenCompraDTO, connection);
		} else {
			throw new Exception("La orden de compra que intenta actualizar, no existe.");
		}
	}

	public OrdenCompraDTO consultarPorCodigo(OrdenCompraDTO ordenCompraDTO, Connection connection) throws Exception, SQLException {
		OrdenCompraDAOSQLServer ordenCompraDAOSQLServer = new OrdenCompraDAOSQLServer();
		OrdenCompraDTO ordenCompraDTOConsultado = ordenCompraDAOSQLServer.consultarPorCodigo(ordenCompraDTO, connection);
		return ordenCompraDTOConsultado;
	}

	public OrdenCompraDTO consultarSoloConsecutivo(Connection connection) throws Exception, SQLException {
		OrdenCompraDAOSQLServer ordenCompraDAOSQLServer = new OrdenCompraDAOSQLServer();
		OrdenCompraDTO ordenCompraDTOConsultado = ordenCompraDAOSQLServer.consultarSoloConsecutivo(connection);
		return ordenCompraDTOConsultado;
	}
	
	public ArrayList<OrdenCompraDTO> consultarTodo(Connection connection) throws Exception, SQLException {
		OrdenCompraDAOSQLServer ordenCompraDAOSQLServer = new OrdenCompraDAOSQLServer();
		ArrayList<OrdenCompraDTO> ordenCompraDTOLista = ordenCompraDAOSQLServer.consultarTodo(connection);
		return ordenCompraDTOLista;
	}
}
